#pragma once

#include <opencv2\core\core.hpp>
#include <string>


namespace TemplateMatching
{

	class Templates
	{
	private:
		std::vector<cv::Mat> templateImages;
		std::string templateChars;
		cv::Size maxTemplateSize;
	public:
		Templates(const std::string &folder);

		
		const cv::Mat& GetImage(const int index)const
		{
			if(index < 0 || index >= this->templateImages.size())
				throw std::out_of_range("Invalid Index");
			return this->templateImages[index];
		}
		char GetChar(const int index)const
		{
			if(index < 0 || index >= this->templateImages.size())
				throw std::out_of_range("Invalid Index");

			return this->templateChars[index];
		}

		size_t GetNumberOfTemplates()const
		{
			return this->templateImages.size();
		}

		cv::Size GetMaximumTemplateSize()const{return this->maxTemplateSize;}

	};


};